package com.codesuc.aichat.userFavorite.service;

import com.codesuc.aichat.userFavorite.entity.UserFavorite;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
* @Author: ZhangGongMing
* @CreateTime: 2025/09/23 12:56
* @Description: UserFavorite业务层
* @Version: 1.0
*/
public interface UserFavoriteService extends IService<UserFavorite> {

    /**
     * 用户新增收藏角色
     * @param userId 用户ID
     * @param roleId 角色ID
     * @return 是否成功
     */
    boolean addUserFavoriteRole(Long userId, Long roleId);

    /**
     * 用户删除收藏角色
     * @param userId 用户ID（可选，为空时使用当前登录用户ID）
     * @param roleId 角色ID
     * @return 是否成功
     */
    boolean removeUserFavoriteRole(Long userId, Long roleId);

    /**
     * 分页查询用户收藏的角色
     * @param userId 用户ID
     * @param pageNo 页码
     * @param pageSize 每页大小
     * @return 分页结果
     */
    Page<UserFavorite> getUserFavoriteRolesPage(Long userId, Integer pageNo, Integer pageSize);

    /**
     * 检查用户是否已收藏某角色
     * @param userId 用户ID
     * @param roleId 角色ID
     * @return 是否已收藏
     */
    boolean isUserFavoriteRole(Long userId, Long roleId);

}
